package org.aerie.forest.extensions.base._shelf;

import org.aerie.forest.core.frame.rebar.factory.ForestShelf;
import org.aerie.forest.extensions.base.rebar.bootable.TimeCrystal;
import org.aerie.forest.extensions.base.rebar.bootable.UuidPool;
import org.aerie.forest.extensions.base.rebar.tool.ClassTool;
import org.aerie.forest.extensions.base.rebar.tool.RegularTool;
import org.aerie.forest.extensions.base.rebar.tool.StringTool;
import org.aerie.forest.extensions.base.rebar.tool.math.MathTool;

/**
 * @description forest架构元素货架之基础
 *
 * @author quark
 * @organization aerie
 * @date 2020年2月27日 下午5:23:57
 * @version 1.2.0
 */
public final class ForestBaseShelf extends ForestShelf {

	/**
	 * @description forest静态内部类单例
	 *
	 * @author quark
	 * @organization aerie
	 * @date 2020-8-16 21:44:27
	 * @version 2.0.1
	 */
	private static final class ForestInstance {

		/**
		 * @description 单例
		 * 
		 * @author quark
		 * @date 2020-8-16 21:44:09
		 * @version 2.0.1
		 */
		private static final ForestBaseShelf FOREST_BASE_SHELF = new ForestBaseShelf();
	}

	/**
	 * Construction
	 * 
	 *
	 * @date 2020年2月27日 下午5:24:19
	 * @version 1.2.0
	 */
	private ForestBaseShelf() {
		super("forest基础货架");
		LOGGER.info("【单例】forest架构元素货架之基础初始化");
	}

	/**
	 * @description 获得单例
	 * @return forest架构元素货架
	 *
	 * @date 2020年2月27日 下午5:24:48
	 * @version 1.2.0
	 */
	public static ForestBaseShelf getInstance() {
		return ForestInstance.FOREST_BASE_SHELF;
	}

	// ===>===>===>启动器

	/**
	 * @description 时间晶振类
	 * 
	 * @author quark
	 * @date 2020年2月27日 下午5:25:01
	 * @version 1.2.0
	 */
	public final RebarScutcheon<TimeCrystal> TIME_CRYSTAL = new RebarScutcheon<TimeCrystal>() {

	};

	/**
	 * @description UUID池类
	 * 
	 * @author quark
	 * @date 2020年2月27日 下午5:25:09
	 * @version 1.2.0
	 */
	public final RebarScutcheon<UuidPool> UUID_POOL = new RebarScutcheon<UuidPool>() {

	};
	// ===>===>===>工具

	/**
	 * @description Math工具
	 * 
	 * @author quark
	 * @date 2020年4月10日 上午10:24:55
	 * @version 1.2.0
	 */
	public final RebarScutcheon<MathTool> MATH_TOOL = new RebarScutcheon<MathTool>() {

	};

	/**
	 * @description String工具类
	 * 
	 * @author quark
	 * @date 2020年2月27日 下午5:25:27
	 * @version 1.2.0
	 */
	public final RebarScutcheon<StringTool> STRING_TOOL = new RebarScutcheon<StringTool>() {

	};

	/**
	 * @description class工具类
	 * 
	 * @author quark
	 * @date 2020年2月27日 下午5:25:37
	 * @version 1.2.0
	 */
	public final RebarScutcheon<ClassTool> CLASS_TOOL = new RebarScutcheon<ClassTool>() {

	};

	/**
	 * @description 正则表达式工具
	 * 
	 * @author quark
	 * @date 2020年2月27日 下午5:25:47
	 * @version 1.2.0
	 */
	public final RebarScutcheon<RegularTool> REGULAR_TOOL = new RebarScutcheon<RegularTool>() {

	};
}
